<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #container1,
        #container2 {
            width: 200px;
            height: 200px;
            border: 1px solid red;
            padding-top: 20px;
        }
    </style>
</head>

<body>
    <div id="container1" style="width:100px;height:100px;border:1px solid yellow;">
        内联样式盒子
    </div>
    <div id="container2">非内联样式盒子</div>
    <script>
        var con1 = document.getElementById('container1');
        console.log(con1.style.height); // 100px 只有内联样式中才能获取到 

        /* 
        scrollHeight: 因为子元素比父元素高，父元素不想被子元素撑的一样高就显示出了滚动条，在滚动的过程中本元素有部分被隐藏了，
        scrollHeight代表包括当前不可见部分的元素的高度。而可见部分的高度其实就是clientHeight，也就是scrollHeight>=clientHeight恒成立。
        在有滚动条时讨论scrollHeight才有意义，在没有滚动条时scrollHeight==clientHeight恒成立。
        */
        console.log(con1.clientHeight); // 120  包含内边距
        console.log(con1.scrollHeight); // 120  包含内边距


        console.log(con1.getBoundingClientRect()) // 里面的width和height包括内边距和边框
        console.log(window.getComputedStyle(con1).height); //100px 
        console.log(con1.offsetHeight); //122 注意没有单位

        var con2 = document.getElementById('container2');
        // alert(con2.currentStyle.height); //ie中才生效，否则控制台报错
        console.log(window.getComputedStyle(con2).height); // 200px;
        console.log(con2.offsetHeight); // 222  注意没有单位
    </script>

</body>

</html>